/**
 * @p.md
 * 
 * ProtoActor TypeScript SDK 入口文件
 */

// 导出版本
export const version = '0.1.0';

// 导出 Actor 相关模块
export * from './actor/index';

// 导出持久化相关模块
export * from './persistence/index';

// 导出 WASM 相关模块
import * as WASM from './wasm';
export { WASM };

// 主函数
function main() {
  console.log('========================================');
  console.log('| ProtoActor TypeScript SDK Demo       |');
  console.log('| 版本: ' + version + '                    |');
  console.log('========================================');
  
  // 导入 PingPong 示例
  const { runPingPongExample } = require('./actor/examples/pingPongActor');
  
  // 运行示例
  runPingPongExample();
}

/**
 * 运行 WASM 示例
 */
export async function runWasmDemo() {
  console.log('========================================');
  console.log('| ProtoActor TypeScript WASM Demo     |');
  console.log('| 版本: ' + version + '                    |');
  console.log('========================================');
  
  try {
    // 从 WASM 模块导入示例
    const { runWasmExample, runClusterExample } = WASM;
    
    // 运行基本 WASM 示例
    console.log('\n[基本 WASM 示例]');
    await runWasmExample();
    
    // 运行集群 WASM 示例
    console.log('\n[集群 WASM 示例]');
    await runClusterExample();
    
    console.log('\nWASM 示例执行完毕!');
  } catch (error) {
    console.error('WASM 示例运行失败:', error);
  }
}

// 在直接执行此文件时运行主函数
if (require.main === module) {
  main();
  
  // 如果要运行 WASM 示例，取消下面这行的注释
  // runWasmDemo().catch(console.error);
} 